This invention relates generally to communication systems and more particularly to a method and system for managing storage of data in a network.
Communication devices such as telephones, computers, and video equipment may be interconnected to form a network A network allows multiple parties to communicate with each other. Communications within a network often take the form of voice, data, video, or a combination of these forms Such communications allow for meetings and presentations with participants separated by long distances These events depend on the network to function as quickly and accurately as possible, in order to compensate for the distance of the participants.
A network may be formed by linking independent communication devices together according to a protocol. One example of a protocol for linking communication devices is Fibre Channel. In a Fibre Channel network, each device, acting as a node, or entry point onto the network, transmits and receives information through the network to the other network nodes. Although Fibre Channel networks may take various forms, a loop topology is often incorporated. In a loop topology, network nodes are connected in loop arrangement with any given node directly connected to only its two neighbors. In this manner, communication between all parties connected to the network is possible. One advantage of the some loop topologies is fault tolerance. In some implementations that utilize counter-rotational rings, if a break between nodes occurs, information may be routed back around the loop to its destination.
Information transmitted by the nodes travels around the loop until it reaches its destination. Traditionally, many Fibre Channel networks are configured to allow transmission of information by only one node at a given time. Thus, while any given node is transmitting information, all other nodes can only receive information. In addition traditional networking protocols do not specify the amount of time that this one node can transmit. Such communication schemes pose problems with the transmission of isochronous data that require the transfer of data at regular intervals such as live video and audio. A node that has live video to transfer is threatened with data loss if the network is currently servicing an unbounded transfer for another node. This problem is enhanced when the network has multiple sources of live isochronous data.
To address such problems, a plurality of frames may be periodically transmitted in a network in which a plurality of nodes read to or write from specific portions of the frames. Such frames may be transmitted in a isochronous manner in which frames traverse the network at a given periodic rate. However, if the amount of available bandwidth permits, additional asynchronous frames may also be transmitted. Because both asynchronous and isochronous frames need to be stored, it is cost effective to use the same memory system for both types of frames. However, the storage of both asynchronous and isochronous frames in the same memory systems leads to problems because requirements and conditions for frame routing and re-transmission are very dissimilar.
Accordingly, a need has arisen for an improved method and system for managing storage of data. The present invention provides a method and system for managing storage of data that addresses shortcomings of prior systems and methods.
According to one embodiment of the invention, a method of managing storage of data includes assigning one of a plurality of buffer pointers to a first frame of data and storing the first frame of data in a location in memory associated with the assigned buffer pointer The method also includes determining whether the first frame of data is associated with a sequence of frames and storing the assigned buffer pointer in a first location if the first frame of data is associated with a sequence of frames and a different location if the first frame of data is not associated with a sequence of frames. The method also includes, after storing the assigned buffer pointer, manipulating the first frame of data stored in the location in memory. The manipulation includes accessing the assigned buffer pointer.
According to another embodiment of the invention, a method of managing storage of data includes providing a queue for storing a plurality of buffer pointers associated with a group of related consecutive frames of data and receiving the group of related consecutive frames of data. The method also includes assigning a first buffer pointer to a first frame in the group of consecutive frames and a second buffer pointer to a last frame in the group of consecutive frames. The first and second buffer pointers indicate a range of a memory in which the group of related consecutive frames is stored. The method also includes storing the first and second buffer pointers in the queue and manipulating the group of consecutive frames stored in the range of the memory by accessing the first and second buffer pointers.
Embodiments of the invention provide numerous technical advantages For example, in one embodiment of the invention, manipulation of data is possible within a main memory unit by merely manipulating buffer pointers rather than the actual data. Furthermore, both asynchronous and isochronous frames may be manipulated through the use of separate queues. In addition, sequences of frames of data may be manipulated as a group, rather than individually An additional advantage of one embodiment of the present invention includes a recirculating nature of buffer pointers. Buffer pointers are never discarded, but are rather recirculated back to a link list after they are used. Thus, memory allocation problems will not occur due to the loss of a buffer pointer to a particular portion of main memory. Furthermore, locations in a main memory may be allocated to external devices for read or write access, but the pointer for those locations in memory in maintained internally, precluding any loss of memory due to flaws in the external device.
Other technical advantages are readily apparent to one skilled in the art from the following figures, descriptions, and claims.